-
Notifications
You must be signed in to change notification settings - Fork 39
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat(platform): proof verification for many queries and a few more queries #2431
Conversation
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the You can disable this status message by setting the WalkthroughThis pull request introduces comprehensive enhancements to token-related functionality across multiple packages. The changes focus on adding new methods and structures for token total supply, aggregated identity balances, and token verification. Key additions include RPC methods in the platform service, new query and verification methods in the Drive implementation, and version tracking for these new features. The modifications span gRPC protocol definitions, Rust implementation files, and version management components. Changes
Sequence DiagramsequenceDiagram
participant Client
participant PlatformService
participant Drive
participant GroveDB
Client->>PlatformService: getTokenTotalSupply(token_id)
PlatformService->>Drive: fetch_token_total_supply
Drive->>GroveDB: Query token total supply
GroveDB-->>Drive: Return total supply
Drive-->>PlatformService: Return token total supply
PlatformService-->>Client: Respond with total supply
Poem
Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media? 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (Invoked using PR comments)
Other keywords and placeholders
CodeRabbit Configuration File (
|
@coderabbitai review |
✅ Actions performedReview triggered.
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 3
🧹 Nitpick comments (23)
packages/rs-drive/src/verify/tokens/verify_token_statuses/v0/mod.rs (1)
51-54
: Use a more specific error variant for unexpected item types.In the match arm handling unexpected proof elements, you're using
ProofError::IncorrectValueSize
. Consider defining and using a more precise error variant likeProofError::InvalidItemType
to enhance error clarity.Apply this diff to improve error specificity:
-_ => Err(Error::Proof(ProofError::IncorrectValueSize( +_ => Err(Error::Proof(ProofError::InvalidItemType( "proof did not point to an item as expected for token info", ))),packages/rs-drive/src/verify/tokens/verify_token_total_supply_and_aggregated_identity_balance/v0/mod.rs (1)
41-56
: Avoid usingunwrap()
to prevent potential panics.Even though
proved_key_values
is confirmed to have two elements, usingunwrap()
could lead to panics if changes occur in the future. It's safer to use direct indexing or pattern matching withoutunwrap()
.Apply this refactor to eliminate
unwrap()
usage:-let ( - _aggregated_identity_balances_path, - _aggregated_identity_balances_key, - Some(aggregated_identity_balances_element), -) = proved_key_values.get(0).unwrap() +let ( + _aggregated_identity_balances_path, + _aggregated_identity_balances_key, + Some(aggregated_identity_balances_element), +) = &proved_key_values[0];And similarly for the second element:
-let ( - _total_supply_path, - _total_supply_key, - Some(total_supply_element), -) = proved_key_values.get(1).unwrap() +let ( + _total_supply_path, + _total_supply_key, + Some(total_supply_element), +) = &proved_key_values[1];packages/rs-drive/src/verify/tokens/verify_token_balances_for_identity_id/v0/mod.rs (2)
43-52
: Improve token ID extraction for clarity and maintainabilityConsider refactoring the extraction of
token_id
fromproved_key_value.0.get(2)
:
- Use a named constant or variable for the index
2
to enhance readability.- Add comments explaining the structure of
proved_key_value.0
and why index2
is used.Additionally, enhance the error messages to provide more context:
- Include details about the actual length or content when expected sizes are not met.
- For example, modify the error message to indicate the current size of the path or the problematic value.
54-61
: Enhance error messages for unexpected proof elementsThe error message "proof did not point to a sum item" could be more informative:
- Include information about the actual element type encountered in the proof.
- Providing additional context will assist in debugging and identifying the root cause of the issue.
packages/rs-drive/src/verify/tokens/verify_token_infos_for_identity_id/v0/mod.rs (1)
54-63
: Provide detailed error information for proof validationWhen the proof does not point to the expected
Item
, the error message could be more descriptive:
- Specify the actual element type found in the proof.
- Including this information will help diagnose issues during proof validation and improve debugging efficiency.
packages/rs-drive/src/verify/tokens/verify_token_balances_for_identity_id/mod.rs (1)
14-74
: Consider refactoring to eliminate code duplicationThe implementation of
verify_token_balances_for_identity_id
closely mirrors that ofverify_token_infos_for_identity_id
in structure and logic. To improve maintainability and reduce code duplication, consider abstracting the common patterns into shared utility functions or traits.packages/rs-drive/src/verify/tokens/verify_token_total_supply_and_aggregated_identity_balance/mod.rs (1)
15-68
: Refactor common version dispatching logicSimilar to other verification methods,
verify_token_total_supply_and_aggregated_identity_balance
contains repetitive version dispatching code. Abstracting this pattern into a generic helper function or macro could reduce code duplication and enhance code maintainability.packages/rs-drive-abci/src/query/token_queries/token_total_supply/v0/mod.rs (3)
23-28
: Enhance error message fortoken_id
conversion failureThe error message when
token_id
conversion fails could be more informative to aid debugging. Including the actual length of the providedtoken_id
can help identify issues quickly.Consider updating the error handling as follows:
- QueryError::InvalidArgument( - "token_id must be a valid identifier (32 bytes long)".to_string(), - ) + QueryError::InvalidArgument(format!( + "token_id must be a valid 32-byte identifier, but got {} bytes", + token_id.len() + ))
46-53
: Clarify error message when aggregated identity balances are missingThe current error message might suggest that the token itself does not exist, whereas the issue could be specifically with the aggregated identity balances.
Consider refining the error message for clarity:
- QueryError::NotFound( - format!("Token {} not found", Identifier::new(token_id)), - ) + QueryError::NotFound( + format!("Aggregated identity balances for token {} not found", Identifier::new(token_id)), + )
55-62
: Align error message for missing token total supplySimilarly, clarify the error message when the total supply for the token is not found to accurately reflect the issue.
Update the error message for consistency and clarity:
- QueryError::NotFound( - format!("Token {} total supply not found", Identifier::new(token_id)), - ) + QueryError::NotFound( + format!("Total supply for token {} not found", Identifier::new(token_id)), + )packages/rs-drive/src/verify/tokens/mod.rs (1)
1-6
: Standardize module naming for consistencyThe module
verify_token_total_supply_and_aggregated_identity_balance
uses the singular form "balance" while other modules use plural forms (e.g.,verify_token_balances_for_identity_id
). For consistency, consider renaming it toverify_token_total_supply_and_aggregated_identity_balances
.This change will align the naming convention across the modules and improve code readability.
packages/rs-dpp/src/balances/total_single_token_balance/mod.rs (2)
5-12
: Enhance struct documentation with validation rules.While the documentation explains the relationship between fields, it would be helpful to include:
- Valid ranges for both fields (non-negative values)
- Error conditions that could occur
- Example usage
26-49
: Consider enhancing error messages and method naming.
- The method name
ok
could be more descriptive, e.g.,validate_balance
orverify_balance_equality
.- Error messages could include the actual values to aid in debugging.
- return Err(ProtocolError::Generic( - "Token in platform are less than 0".to_string(), - )); + return Err(ProtocolError::Generic( + format!("Token supply is negative: {}", token_supply), + )); - return Err(ProtocolError::Generic( - "Token in aggregated identity balances are less than 0".to_string(), - )); + return Err(ProtocolError::Generic( + format!("Aggregated identity balances is negative: {}", aggregated_token_account_balances), + ));packages/rs-drive/src/drive/tokens/calculate_total_tokens_balance/mod.rs (1)
Line range hint
12-22
: Update documentation to reflect parameter change.The documentation still references
drive_version
parameter, but the method now usesplatform_version
.- /// * `drive_version` - A `DriveVersion` object specifying the version of the Drive. + /// * `platform_version` - A `PlatformVersion` object specifying the version of the platform.packages/rs-drive-abci/src/query/token_queries/token_total_supply/mod.rs (1)
13-14
: Consider enhancing the documentation.While the implementation is solid, the documentation could be more detailed. Consider adding:
- Expected input/output examples
- Version compatibility notes
- Error scenarios and handling
packages/rs-drive/src/drive/tokens/system/fetch_token_total_supply/mod.rs (1)
38-47
: Consider simplifying the parameter types.The
estimated_costs_only_with_layer_info
parameter has a complex type signature. Consider creating a type alias or dedicated struct to improve readability:pub type EstimatedCostsInfo = Option<HashMap<KeyInfoPath, EstimatedLayerInformation>>; pub struct TokenSupplyOperationParams { pub estimated_costs: EstimatedCostsInfo, pub transaction: TransactionArg, pub drive_operations: Vec<LowLevelDriveOperation>, }packages/rs-dpp/src/balances/credits.rs (1)
25-26
: Enhance documentation for SignedTokenAmount type.While the type definition is correct and consistent with other signed types, consider adding more detailed documentation explaining:
- Use cases for signed token amounts
- Relationship with TokenAmount
- Valid range considerations
packages/rs-drive/src/drive/tokens/system/fetch_token_total_aggregated_identity_balances/mod.rs (1)
41-51
: Enhance method documentation.Consider adding more detailed documentation for:
- Return type explanation (what does None signify?)
- Parameter
estimated_costs_only_with_layer_info
purpose and usage- Expected error cases
packages/rs-drive/src/error/proof.rs (1)
95-95
: Consider removing deprecated error code function.The
get_error_code
function is marked as deprecated and unused. Consider removing it or documenting why it's being kept.packages/rs-drive/src/drive/tokens/balance/queries.rs (1)
99-119
: Consider adding documentation for the return value format.The function implementation looks good, merging queries efficiently. However, it would be helpful to document the format of the returned data since it combines two different types of information.
Add documentation like this:
/// Returns a merged query that fetches both total supply and aggregated identity balances. /// The query result will contain two items in the following order: /// 1. Aggregated identity balances /// 2. Total token supplypackages/rs-drive/src/drive/tokens/system/prove_token_total_supply_and_aggregated_identity_balances/v0/mod.rs (1)
22-39
: Consider adding documentation for the operation method.While the implementation is correct, adding documentation would help explain:
- The purpose of
drive_operations
- The expected format of the proof
- Any potential error conditions
packages/rs-drive-abci/src/query/service.rs (1)
Line range hint
715-724
: Remove commented out code.If the
get_active_group_actions
method is no longer needed, it should be removed rather than left commented out. This helps maintain code cleanliness and prevents confusion.- // async fn get_active_group_actions( - // &self, - // request: Request<GetActiveGroupActionsRequest>, - // ) -> Result<Response<GetActiveGroupActionsResponse>, Status> { - // self.handle_blocking_query( - // request, - // Platform::<DefaultCoreRPC>::query_active_group_actions, - // "get_active_group_actions", - // ) - // .await - // }packages/dapi-grpc/protos/platform/v0/platform.proto (1)
66-67
: Remove commented out RPC methods.If these methods are no longer needed, they should be removed rather than left commented out.
-// rpc getActiveGroupActions(GetActiveGroupActionsRequest) returns (GetActiveGroupActionsResponse); -// rpc getClosedGroupActions(GetClosedGroupActionsRequest) returns (GetClosedGroupActionsResponse);
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
⛔ Files ignored due to path filters (1)
Cargo.lock
is excluded by!**/*.lock
📒 Files selected for processing (47)
packages/dapi-grpc/protos/platform/v0/platform.proto
(2 hunks)packages/rs-dpp/src/balances/credits.rs
(1 hunks)packages/rs-dpp/src/balances/mod.rs
(1 hunks)packages/rs-dpp/src/balances/total_single_token_balance/mod.rs
(1 hunks)packages/rs-drive-abci/src/execution/platform_events/tokens/validate_token_aggregated_balance/v0/mod.rs
(1 hunks)packages/rs-drive-abci/src/query/service.rs
(4 hunks)packages/rs-drive-abci/src/query/token_queries/mod.rs
(1 hunks)packages/rs-drive-abci/src/query/token_queries/token_status/mod.rs
(1 hunks)packages/rs-drive-abci/src/query/token_queries/token_total_supply/mod.rs
(1 hunks)packages/rs-drive-abci/src/query/token_queries/token_total_supply/v0/mod.rs
(1 hunks)packages/rs-drive/Cargo.toml
(1 hunks)packages/rs-drive/src/drive/shared/shared_estimation_costs/add_estimation_costs_for_contested_document_tree_levels_up_to_contract_document_type_excluded/v0/mod.rs
(1 hunks)packages/rs-drive/src/drive/tokens/balance/fetch_identity_token_balances/v0/mod.rs
(3 hunks)packages/rs-drive/src/drive/tokens/balance/prove_identity_token_balances/v0/mod.rs
(3 hunks)packages/rs-drive/src/drive/tokens/balance/queries.rs
(3 hunks)packages/rs-drive/src/drive/tokens/calculate_total_tokens_balance/mod.rs
(2 hunks)packages/rs-drive/src/drive/tokens/calculate_total_tokens_balance/v0/mod.rs
(4 hunks)packages/rs-drive/src/drive/tokens/info/fetch_identity_token_infos/v0/mod.rs
(3 hunks)packages/rs-drive/src/drive/tokens/info/prove_identity_token_infos/v0/mod.rs
(3 hunks)packages/rs-drive/src/drive/tokens/info/queries.rs
(2 hunks)packages/rs-drive/src/drive/tokens/status/fetch_token_statuses/v0/mod.rs
(2 hunks)packages/rs-drive/src/drive/tokens/status/prove_token_statuses/v0/mod.rs
(3 hunks)packages/rs-drive/src/drive/tokens/system/fetch_token_total_aggregated_identity_balances/mod.rs
(1 hunks)packages/rs-drive/src/drive/tokens/system/fetch_token_total_aggregated_identity_balances/v0/mod.rs
(1 hunks)packages/rs-drive/src/drive/tokens/system/fetch_token_total_supply/mod.rs
(1 hunks)packages/rs-drive/src/drive/tokens/system/fetch_token_total_supply/v0/mod.rs
(1 hunks)packages/rs-drive/src/drive/tokens/system/mod.rs
(1 hunks)packages/rs-drive/src/drive/tokens/system/prove_token_total_supply_and_aggregated_identity_balances/mod.rs
(1 hunks)packages/rs-drive/src/drive/tokens/system/prove_token_total_supply_and_aggregated_identity_balances/v0/mod.rs
(1 hunks)packages/rs-drive/src/error/proof.rs
(2 hunks)packages/rs-drive/src/verify/tokens/mod.rs
(1 hunks)packages/rs-drive/src/verify/tokens/verify_token_balances_for_identity_id/mod.rs
(1 hunks)packages/rs-drive/src/verify/tokens/verify_token_balances_for_identity_id/v0/mod.rs
(1 hunks)packages/rs-drive/src/verify/tokens/verify_token_infos_for_identity_id/mod.rs
(1 hunks)packages/rs-drive/src/verify/tokens/verify_token_infos_for_identity_id/v0/mod.rs
(1 hunks)packages/rs-drive/src/verify/tokens/verify_token_statuses/mod.rs
(1 hunks)packages/rs-drive/src/verify/tokens/verify_token_statuses/v0/mod.rs
(1 hunks)packages/rs-drive/src/verify/tokens/verify_token_total_supply_and_aggregated_identity_balance/mod.rs
(1 hunks)packages/rs-drive/src/verify/tokens/verify_token_total_supply_and_aggregated_identity_balance/v0/mod.rs
(1 hunks)packages/rs-platform-version/Cargo.toml
(1 hunks)packages/rs-platform-version/src/version/drive_abci_versions/drive_abci_query_versions/mod.rs
(1 hunks)packages/rs-platform-version/src/version/drive_abci_versions/drive_abci_query_versions/v1.rs
(1 hunks)packages/rs-platform-version/src/version/drive_versions/drive_token_method_versions/mod.rs
(2 hunks)packages/rs-platform-version/src/version/drive_versions/drive_token_method_versions/v1.rs
(2 hunks)packages/rs-platform-version/src/version/drive_versions/drive_verify_method_versions/mod.rs
(1 hunks)packages/rs-platform-version/src/version/drive_versions/drive_verify_method_versions/v1.rs
(1 hunks)packages/rs-platform-version/src/version/mocks/v2_test.rs
(1 hunks)
✅ Files skipped from review due to trivial changes (3)
- packages/rs-drive-abci/src/query/token_queries/mod.rs
- packages/rs-dpp/src/balances/mod.rs
- packages/rs-drive/src/drive/shared/shared_estimation_costs/add_estimation_costs_for_contested_document_tree_levels_up_to_contract_document_type_excluded/v0/mod.rs
🔇 Additional comments (53)
packages/rs-drive/src/verify/tokens/verify_token_statuses/v0/mod.rs (1)
15-63
: Well-structured function with appropriate error handling.The
verify_token_statuses_v0
function is well-implemented, with clear logic and proper error handling. The use of generics and iterators aligns with Rust best practices, and the function correctly handles various proof verification scenarios.packages/rs-drive/src/verify/tokens/verify_token_statuses/mod.rs (1)
14-67
: Correct implementation of version dispatching.The
verify_token_statuses
method correctly dispatches to the version-specific implementation based onplatform_version
. This approach ensures future compatibility and maintainability as new versions are added.packages/rs-drive/src/verify/tokens/verify_token_total_supply_and_aggregated_identity_balance/v0/mod.rs (1)
14-72
: Efficient proof verification and result extraction.The
verify_token_total_supply_and_aggregated_identity_balance_v0
function effectively verifies the proof and retrieves the necessary token balance information. The logical flow and error handling are appropriate.packages/rs-drive/src/verify/tokens/verify_token_infos_for_identity_id/v0/mod.rs (1)
43-53
: Refine token ID extraction and improve error handlingSimilar to the previous module, consider the following improvements:
- Refactor the extraction of
token_id
fromproved_key_value.0.get(2)
by using a named constant or variable for the index.- Add comments to explain the structure of
proved_key_value.0
, enhancing code readability.- Enhance error messages to include actual and expected values or sizes, aiding in debugging.
packages/rs-drive/src/verify/tokens/verify_token_infos_for_identity_id/mod.rs (1)
14-73
: Well-structured method with comprehensive documentationThe
verify_token_infos_for_identity_id
method is correctly implemented with proper version dispatching based on theplatform_version
. The comprehensive documentation provides clear explanations of parameters, return values, and potential errors, enhancing the maintainability and readability of the code.packages/rs-drive-abci/src/query/token_queries/token_total_supply/v0/mod.rs (1)
30-44
: Ensure robust handling of proof generation errorsIn the
if prove
block, any errors during proof generation should be properly handled to prevent unexpected failures.Please verify that
prove_token_total_supply_and_aggregated_identity_balances
handles all potential errors internally and that any critical errors are correctly propagated. If necessary, add error handling to manage unexpected scenarios.packages/rs-drive/src/drive/tokens/system/mod.rs (1)
3-5
: New modules added appropriatelyThe modules
fetch_token_total_aggregated_identity_balances
,fetch_token_total_supply
, andprove_token_total_supply_and_aggregated_identity_balances
are correctly added to the system tokens module, enhancing the functionality as intended.packages/rs-drive-abci/src/execution/platform_events/tokens/validate_token_aggregated_balance/v0/mod.rs (1)
19-19
: LGTM! Parameter update aligns with the new method signature.The change from
&platform_version.drive
toplatform_version
matches the updated signature ofcalculate_total_tokens_balance
and maintains proper error handling.packages/rs-drive/src/drive/tokens/system/prove_token_total_supply_and_aggregated_identity_balances/mod.rs (2)
15-20
: LGTM! Well-structured method signature with clear documentation.The method signature is well-defined with appropriate parameters and documentation.
21-38
: LGTM! Robust version handling with clear error messages.The implementation:
- Properly handles version dispatch
- Provides clear error messages for unknown versions
- Follows the established pattern for version-based method dispatch
packages/rs-platform-version/src/version/drive_versions/drive_token_method_versions/v1.rs (1)
16-17
: LGTM! Version configuration aligns with new functionality.The addition of new fields for token total supply and aggregated balances is consistent with the new functionality being implemented. Starting versions at 0 follows the established pattern.
Also applies to: 27-27
packages/rs-drive/src/drive/tokens/calculate_total_tokens_balance/v0/mod.rs (1)
18-18
: LGTM! Parameter update maintains functionality while improving version handling.The change from
drive_version
toplatform_version
is consistent with the codebase-wide transition to usingPlatformVersion
. The core calculation logic and error handling remain intact.Also applies to: 28-28, 39-39
packages/rs-dpp/src/balances/total_single_token_balance/mod.rs (1)
14-25
: LGTM! Clean Display implementation.The Display trait implementation provides well-formatted output with proper indentation and newlines.
packages/rs-drive/src/drive/tokens/calculate_total_tokens_balance/mod.rs (1)
34-40
: LGTM! Clean version handling implementation.The version check has been properly updated to use the platform version hierarchy.
packages/rs-platform-version/src/version/drive_versions/drive_token_method_versions/mod.rs (1)
23-24
: LGTM! Well-structured feature version additions.The new fields are appropriately placed and follow consistent naming conventions:
token_total_supply
token_total_aggregated_identity_balances
total_supply_and_aggregated_identity_balances
Also applies to: 36-36
packages/rs-drive/src/drive/tokens/status/fetch_token_statuses/v0/mod.rs (1)
34-34
: Verify the implementation of token_statuses_query helper.The code now uses
Drive::token_statuses_query
helper method. Please ensure this method is properly implemented and tested.✅ Verification successful
Implementation of
token_statuses_query
is properly implemented and well integratedThe method is correctly implemented in
packages/rs-drive/src/drive/tokens/info/queries.rs
and follows the established patterns for token-related queries in the codebase. It's actively used across fetch, prove, and verify operations, demonstrating proper integration and testing through usage.🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Search for the implementation of token_statuses_query ast-grep --pattern 'impl Drive { $$$ fn token_statuses_query($$$) { $$$ } $$$ }'Length of output: 94
Script:
#!/bin/bash # Search for any mention of token_statuses_query rg -l "token_statuses_query" # Search with context to understand the implementation rg "token_statuses_query" -A 5 # Search for Drive implementation files fd -t f "drive\.rs$" # Search for similar method names rg "token.*query" -A 5Length of output: 35124
packages/rs-drive-abci/src/query/token_queries/token_status/mod.rs (1)
23-23
: LGTM! Error message accurately reflects the context.The error message now correctly refers to "token statuses" instead of "token infos", maintaining consistent terminology throughout the codebase.
packages/rs-drive/src/drive/tokens/balance/fetch_identity_token_balances/v0/mod.rs (2)
36-36
: LGTM! Improved code maintainability.Using
Drive::token_balances_for_identity_id_query
simplifies the path query construction and reduces code duplication.
48-51
: Verify the path structure change.The token ID index has changed from 1 to 2, suggesting a modification in the path structure. Please ensure this change is consistent with the updated path structure across the codebase.
✅ Verification successful
Path structure change is consistent ✅
The token ID is consistently accessed at index 2 across token-related operations in the codebase, as evidenced by identical implementations in both token balance and token info modules.
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Description: Verify the consistency of token ID path indexing across the codebase # Search for similar path index access patterns rg -A 2 "path\.get\([12]\)" --type rust # Search for token ID extraction patterns ast-grep --pattern 'path.get($_).ok_or($_)'Length of output: 3835
packages/rs-drive-abci/src/query/token_queries/token_total_supply/mod.rs (1)
13-58
: LGTM! Well-structured implementation of token total supply queries.The implementation follows best practices with proper error handling, version validation, and clean separation of concerns.
packages/rs-drive/src/drive/tokens/system/fetch_token_total_supply/mod.rs (1)
15-35
: LGTM! Clean implementation of token total supply fetching.The implementation follows the Drive's versioning pattern with proper error handling and version routing.
packages/rs-drive/src/drive/tokens/info/fetch_identity_token_infos/v0/mod.rs (2)
37-37
: LGTM! Improved code organization with dedicated query method.The refactoring to use
Drive::token_infos_for_identity_id_query
improves code organization and reusability.
49-51
: Verify path structure change impact.The change in path index from 1 to 2 suggests a modification in the expected path structure. This could be a breaking change if not all callers are updated.
Let's verify the usage:
✅ Verification successful
Change correctly aligns with token path structure
The change from index 1 to 2 is actually fixing a bug to match the defined path structure in
paths.rs
. The token identity info paths are consistently defined as 3-part paths where index 2 contains the token_id.🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Search for any other code that might be accessing path indices in token info queries rg -A 5 "token_infos.*path.*get\(\d+\)"Length of output: 41
Script:
#!/bin/bash # Search for any path.get() calls to understand the path structure rg -A 3 "path.*get\(\d+\)" # Search for path-related tests and documentation rg -l "path.*structure|path.*format" --type rust # Look for the specific file and its tests fd "fetch_identity_token_infos" --type fLength of output: 7357
Script:
#!/bin/bash # Check the token paths structure cat packages/rs-drive/src/drive/tokens/paths.rs # Look for related tests rg -A 5 "fetch_identity_token_infos.*test" --type rustLength of output: 2953
packages/rs-platform-version/src/version/drive_versions/drive_verify_method_versions/v1.rs (1)
36-38
: LGTM! New verification methods align with PR objectives.The addition of three new token verification methods with consistent version initialization enhances the platform's verification capabilities:
- verify_token_infos_for_identity_id
- verify_token_statuses
- verify_token_total_supply_and_aggregated_identity_balance
packages/rs-drive/src/drive/tokens/system/fetch_token_total_aggregated_identity_balances/mod.rs (1)
14-39
: LGTM! Well-structured implementation with proper version handling.The implementation follows best practices with proper error handling and version compatibility checks.
packages/rs-drive/src/drive/tokens/system/fetch_token_total_supply/v0/mod.rs (1)
14-29
: LGTM! Clean implementation of the wrapper method.The method correctly initializes the operations vector and delegates to the detailed implementation.
packages/rs-platform-version/src/version/drive_abci_versions/drive_abci_query_versions/mod.rs (1)
33-33
: LGTM! Consistent versioning structure.The addition of
token_total_supply
follows the established pattern for feature versioning.packages/rs-platform-version/src/version/drive_versions/drive_verify_method_versions/mod.rs (1)
51-53
: LGTM! Well-structured verification methods.The new verification methods are logically grouped and follow consistent naming patterns.
packages/rs-drive/src/error/proof.rs (1)
33-38
: LGTM! Clear distinction between system and user errors.The new error variant provides a clear separation between system errors (IncorrectProof) and user errors (UnexpectedResultProof), with good documentation.
packages/rs-drive/src/drive/tokens/info/queries.rs (2)
38-57
: LGTM! Well-structured query implementation.The function efficiently handles multiple token IDs and correctly sets up the subquery path for the identity ID.
59-73
: LGTM! Clean implementation of token status query.The function follows consistent patterns and properly handles multiple token IDs.
packages/rs-drive/src/drive/tokens/balance/queries.rs (1)
40-59
: LGTM! Well-implemented balance query function.The function follows consistent patterns and properly handles multiple token IDs.
packages/rs-platform-version/src/version/drive_abci_versions/drive_abci_query_versions/v1.rs (1)
102-106
: LGTM! Version configuration is consistent.The new
token_total_supply
feature version bounds are properly configured and follow the same pattern as other features.packages/rs-drive/src/drive/tokens/status/prove_token_statuses/v0/mod.rs (3)
29-29
: LGTM! Good refactoring of query construction.The code is simplified by using the new helper method
token_statuses_query
.
40-188
: LGTM! Comprehensive test coverage for token status proofs.The test thoroughly verifies:
- Multiple token status proofs
- Different token states (paused vs. non-paused)
- Proper proof verification
190-220
: LGTM! Good edge case testing.The test properly verifies behavior with non-existent tokens.
packages/rs-platform-version/src/version/mocks/v2_test.rs (1)
240-244
: LGTM! Version configuration follows established patterns.The addition of
token_total_supply
with version bounds consistent with other feature versions is appropriate.packages/rs-drive/src/drive/tokens/system/prove_token_total_supply_and_aggregated_identity_balances/v0/mod.rs (3)
8-20
: LGTM! Clean implementation of the proof generation method.The method correctly delegates to the operation-based implementation while maintaining a clean interface.
57-171
: Well-structured test case with comprehensive assertions.The test effectively validates:
- Proof generation for multiple identities
- Root hash validation
- Balance verification
- Total supply calculation
173-256
: Good coverage of edge case with empty token.The test properly verifies that the proof system works correctly with zero balances.
packages/rs-drive/src/drive/tokens/info/prove_identity_token_infos/v0/mod.rs (3)
32-32
: LGTM! Clean query construction.The use of
Self::token_infos_for_identity_id_query
encapsulates query logic effectively.
62-218
: Thorough test coverage for token freezing scenario.The test effectively validates:
- Token freezing state
- Multiple token handling
- Proof verification
Line range hint
220-302
: Comprehensive edge case testing.Both tests effectively cover:
- Empty token balances
- Non-existent identity scenarios
- Proof verification for edge cases
Also applies to: 304-381
packages/rs-drive/src/drive/tokens/balance/prove_identity_token_balances/v0/mod.rs (3)
32-32
: LGTM! Clean query construction.The use of
Self::token_balances_for_identity_id_query
maintains consistency with other proof implementations.
61-218
: Well-structured test for multiple token balances.The test thoroughly validates:
- Multiple token minting
- Balance verification
- Proof generation and verification
220-302
: Comprehensive edge case coverage.Tests effectively verify:
- Zero balance scenarios
- Non-existent identity handling
- Proof verification for edge cases
Also applies to: 304-381
packages/rs-drive-abci/src/query/service.rs (3)
25-26
: LGTM!The new imports are correctly ordered and match the added functionality for token supply and group info types.
Also applies to: 41-42
679-689
: LGTM!The implementation follows the established pattern for query methods and correctly uses
handle_blocking_query
with appropriate parameters.
703-713
: LGTM!The implementation follows the established pattern for query methods and correctly uses
handle_blocking_query
with appropriate parameters.packages/rs-platform-version/Cargo.toml (1)
14-14
: Verify the grovedb dependency version.The
grovedb-version
dependency has been updated to a new revision. Please ensure this is the latest stable version and verify its compatibility with other packages.Run the following script to check the commit history and latest tags:
✅ Verification successful
The grovedb dependency version is appropriate and consistent
The specified commit (e3ac3f7) is 2 commits ahead of the latest tag v2.2.1 and contains a critical bugfix for query handling. All packages in the codebase consistently use this same commit, maintaining proper version alignment across the project.
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Description: Check the grovedb repository for commit info and latest tags. # Get commit info gh api repos/dashpay/grovedb/commits/e3ac3f7883bb0f2e25936153f76d447b42ebc9c0 --jq '.commit.message' # Get latest tags gh api repos/dashpay/grovedb/tags --jq '.[0:5] | .[] | {name: .name, sha: .commit.sha}'Length of output: 572
Script:
#!/bin/bash # Check if the commit is ahead of the latest tag gh api repos/dashpay/grovedb/compare/v2.2.1...e3ac3f7883bb0f2e25936153f76d447b42ebc9c0 --jq '.status, .ahead_by, .behind_by' # Find other grovedb dependencies fd Cargo.toml --exec rg -l "grovedb"Length of output: 319
Script:
#!/bin/bash # Check grovedb dependency versions in all Cargo.toml files for file in ./packages/strategy-tests/Cargo.toml ./packages/rs-platform-version/Cargo.toml ./packages/rs-drive/Cargo.toml ./packages/rs-drive-abci/Cargo.toml; do echo "=== $file ===" rg "grovedb.*=.*\".*\"" "$file" || true doneLength of output: 2222
packages/dapi-grpc/protos/platform/v0/platform.proto (3)
63-63
: LGTM!The new RPC methods are correctly added to the
Platform
service.Also applies to: 65-65
1403-1430
: LGTM!The token total supply message types are well-structured with:
- Proper versioning support
- Clear field naming
- Correct field numbering
- Support for proof requests
Line range hint
1431-1579
: LGTM!The group info message types are well-structured with:
- Proper versioning support
- Pagination support
- Clear field naming
- Correct field numbering
- Support for proof requests
...es/rs-drive/src/drive/tokens/system/fetch_token_total_aggregated_identity_balances/v0/mod.rs
Show resolved
Hide resolved
packages/rs-drive/src/drive/tokens/system/fetch_token_total_supply/v0/mod.rs
Show resolved
Hide resolved
commit 6776651 Author: QuantumExplorer <[email protected]> Date: Sat Mar 1 22:23:41 2025 +0700 chore: update to latest dash core 37 (#2483) commit 1501103 Merge: a7c7a0f da17fc5 Author: Ivan Shumkov <[email protected]> Date: Thu Feb 27 14:21:41 2025 +0700 chore: merge master and resolve conflicts (#2481) commit da17fc5 Author: pshenmic <[email protected]> Date: Thu Feb 27 13:31:51 2025 +0700 feat(js-dash-sdk): fix tests after merge commit c7e40cb Merge: c57e8b2 f9eb069 Author: Ivan Shumkov <[email protected]> Date: Thu Feb 27 09:35:02 2025 +0700 Merge remote-tracking branch 'origin/chore/merge-master' into chore/merge-master commit c57e8b2 Author: Ivan Shumkov <[email protected]> Date: Thu Feb 27 09:34:40 2025 +0700 test(dpp): fix assertion with the same value commit 045b6fa Author: Ivan Shumkov <[email protected]> Date: Thu Feb 27 09:32:33 2025 +0700 chore(dpp): remove unnecessary type conversion commit 8160ccd Author: Ivan Shumkov <[email protected]> Date: Thu Feb 27 09:31:32 2025 +0700 chore: remove duplicated commented code commit f9eb069 Merge: 05d0085 a7c7a0f Author: pshenmic <[email protected]> Date: Wed Feb 26 20:03:00 2025 +0700 Merge branch 'v2.0-dev' into chore/merge-master commit a7c7a0f Author: pshenmic <[email protected]> Date: Wed Feb 26 19:52:02 2025 +0700 build: bump rust version to 1.85 (#2480) commit 05d0085 Merge: bcf1785 196976c Author: Ivan Shumkov <[email protected]> Date: Wed Feb 26 18:03:38 2025 +0700 Merge branch 'master' into v2.0-dev commit bcf1785 Author: lklimek <[email protected]> Date: Fri Feb 21 08:43:35 2025 +0100 feat: wasm sdk build proof-of-concept (#2405) Co-authored-by: Ivan Shumkov <[email protected]> commit 5e32426 Author: Paul DeLucia <[email protected]> Date: Thu Feb 20 19:22:52 2025 +0700 fix: token already paused unpaused and frozen validation (#2466) commit 374a036 Author: Ivan Shumkov <[email protected]> Date: Thu Feb 20 17:46:57 2025 +0700 test: fix slowdown of JS SDK unit tests (#2475) commit 1fed09b Author: Ivan Shumkov <[email protected]> Date: Thu Feb 20 13:46:36 2025 +0700 fix(dpp): invalid feature flag usage (#2477) commit 33507bb Author: Paul DeLucia <[email protected]> Date: Thu Feb 20 13:18:55 2025 +0700 fix: destroy frozen funds used wrong identity and proof verification (#2467) commit 91a9766 Author: Ivan Shumkov <[email protected]> Date: Wed Feb 19 16:57:32 2025 +0700 feat(sdk): return state transition execution error (#2454) commit cb915a7 Author: Ivan Shumkov <[email protected]> Date: Wed Feb 19 16:46:54 2025 +0700 test: fix token history contract tests (#2470) commit 04276d5 Author: Ivan Shumkov <[email protected]> Date: Tue Feb 18 21:00:05 2025 +0700 fix: xss vulnerability in mocha (#2469) commit 196976c Author: pshenmic <[email protected]> Date: Fri Feb 14 18:50:08 2025 +0700 fix(sdk)!: bigint for uint64 values (#2443) commit 0bd29a6 Author: pshenmic <[email protected]> Date: Fri Feb 14 17:29:35 2025 +0700 feat(dpp): extra methods for state transitions in wasm (#2462) commit 1eae781 Author: pshenmic <[email protected]> Date: Fri Feb 14 15:29:17 2025 +0700 chore(platform): npm audit fix (#2463) commit ddf4e67 Author: Ivan Shumkov <[email protected]> Date: Fri Feb 14 11:28:08 2025 +0700 test: fix `fetchProofForStateTransition` tests and warnings (#2460) commit d88ea46 Author: Ivan Shumkov <[email protected]> Date: Fri Feb 14 09:52:53 2025 +0700 fix(dpp): invalid imports and tests (#2459) commit 82e4d4c Merge: 125cfe7 4becf5f Author: Paul DeLucia <[email protected]> Date: Thu Feb 13 19:05:51 2025 +0700 fix: check if token is paused on token transfers (#2458) commit 4becf5f Author: pauldelucia <[email protected]> Date: Thu Feb 13 18:34:24 2025 +0700 add costs commit 907971d Merge: 9026669 125cfe7 Author: Paul DeLucia <[email protected]> Date: Thu Feb 13 18:05:06 2025 +0700 Merge branch 'v2.0-dev' into feat/token-paused-validation commit 125cfe7 Merge: 91f65c6 c286ec0 Author: Ivan Shumkov <[email protected]> Date: Thu Feb 13 15:51:46 2025 +0700 Merge branch 'v2.0-dev' into v2.0-tokens-dev commit 9026669 Author: pauldelucia <[email protected]> Date: Thu Feb 13 13:41:19 2025 +0700 feat: check if token is paused on token transfers commit c286ec0 Author: pshenmic <[email protected]> Date: Wed Feb 12 15:41:21 2025 +0700 feat(sdk): add option to request all keys (#2445) commit 91f65c6 Merge: d6b40e6 1a1c50b Author: Paul DeLucia <[email protected]> Date: Wed Feb 12 12:04:58 2025 +0700 fix: wrong order of parameters in UnauthorizedTokenActionError (#2456) commit 1a1c50b Author: pauldelucia <[email protected]> Date: Wed Feb 12 11:51:31 2025 +0700 fix: wrong order of parameters in UnauthorizedTokenActionError commit 26aff36 Author: lklimek <[email protected]> Date: Tue Feb 11 13:06:54 2025 +0100 build: bump Alpine version to 3.21 (#2074) commit 9daa195 Author: Ivan Shumkov <[email protected]> Date: Tue Feb 11 14:38:55 2025 +0700 ci: use github-hosted arm runner for release workflow (#2452) commit 2b1c252 Author: Paul DeLucia <[email protected]> Date: Tue Feb 4 16:40:34 2025 +0700 fix: proof result error for credit transfers in sdk (#2451) commit d6b40e6 Author: QuantumExplorer <[email protected]> Date: Tue Feb 4 06:49:03 2025 +0700 feat(platform): token distribution part two (#2450) commit 93f7d44 Author: Ivan Shumkov <[email protected]> Date: Wed Jan 29 14:07:55 2025 +0700 fix(dpp): invalid feature flag instructions (#2448) commit 6d5af88 Author: QuantumExplorer <[email protected]> Date: Mon Jan 27 16:59:39 2025 +0700 feat(dpp): token distribution model (#2447) commit e735313 Author: Ivan Shumkov <[email protected]> Date: Mon Jan 27 14:24:26 2025 +0700 feat: add token transitions to SDK and DAPI (#2434) commit 0743be2 Author: pshenmic <[email protected]> Date: Sun Jan 26 22:00:40 2025 +0700 feat(dpp): extra methods for state transitions in wasm (#2401) commit f609bcf Merge: 3733f56 cbddb8d Author: Ivan Shumkov <[email protected]> Date: Fri Jan 24 18:16:38 2025 +0700 Merge branch 'v2.0-dev' into v2.0-tokens-dev commit cbddb8d Author: QuantumExplorer <[email protected]> Date: Fri Jan 24 17:59:16 2025 +0700 chore(platform): make bls sig compatibility an optional feature (#2440) Co-authored-by: Ivan Shumkov <[email protected]> commit 764684b Author: Ivan Shumkov <[email protected]> Date: Fri Jan 24 17:57:27 2025 +0700 chore: ignore deprecated `lodash.get` (#2441) commit 3733f56 Author: QuantumExplorer <[email protected]> Date: Thu Jan 23 09:16:12 2025 +0700 feat(platform)!: enhance token configuration and validation mechanisms (#2439) commit 2480ceb Author: QuantumExplorer <[email protected]> Date: Wed Jan 22 16:33:13 2025 +0700 chore: dapi grpc queries (#2437) commit c9ab154 Author: QuantumExplorer <[email protected]> Date: Wed Jan 22 15:50:25 2025 +0700 feat(platform)!: improved token validation and token config update transition (#2435) commit d9647cc Author: QuantumExplorer <[email protected]> Date: Tue Jan 21 10:28:58 2025 +0700 feat: get proofs for tokens (#2433) commit e5964b8 Author: QuantumExplorer <[email protected]> Date: Mon Jan 20 23:31:50 2025 +0700 feat: group queries (#2432) commit 0220302 Author: QuantumExplorer <[email protected]> Date: Sun Jan 19 14:43:51 2025 +0700 feat(platform): proof verification for many queries and a few more queries (#2431) commit cd1527d Author: QuantumExplorer <[email protected]> Date: Fri Jan 17 19:39:37 2025 +0700 fix(dpp)!: wrapping overflow issue (#2430) commit fd7ee85 Merge: d7143cc e4e156c Author: Ivan Shumkov <[email protected]> Date: Thu Jan 16 21:45:47 2025 +0700 Merge branch 'master' into v1.9-dev commit e4e156c Author: QuantumExplorer <[email protected]> Date: Thu Jan 16 18:11:57 2025 +0700 chore(release): update change log and release v1.8.0 (#2427) Co-authored-by: Ivan Shumkov <[email protected]> commit 55a1e03 Author: QuantumExplorer <[email protected]> Date: Thu Jan 16 15:30:42 2025 +0700 feat(platform)!: token base support (#2383) commit 59bf0af Author: QuantumExplorer <[email protected]> Date: Thu Jan 16 13:10:39 2025 +0700 chore(release): bump to v1.8.0-rc.2 (#2426) commit 410eb09 Author: QuantumExplorer <[email protected]> Date: Thu Jan 16 06:31:26 2025 +0700 fix(drive-abci): rebroadcasting should not only take first 2 quorums too (#2425) commit 2abce8e Author: Ivan Shumkov <[email protected]> Date: Wed Jan 15 22:51:58 2025 +0700 chore(release): update changelog and bump version to 1.8.0-rc.1 (#2423) commit ad5f604 Author: Ivan Shumkov <[email protected]> Date: Wed Jan 15 22:14:13 2025 +0700 chore: update bls library (#2424) commit c6feb5b Author: QuantumExplorer <[email protected]> Date: Wed Jan 15 18:57:49 2025 +0700 feat(platform)!: distribute prefunded specialized balances after vote (#2422) Co-authored-by: Ivan Shumkov <[email protected]> commit 94dcbb2 Author: Ivan Shumkov <[email protected]> Date: Wed Jan 15 05:51:45 2025 +0700 chore(drive): increase withdrawal limits to 2000 Dash per day (#2287) commit 6a0aede Author: Ivan Shumkov <[email protected]> Date: Tue Jan 14 21:42:59 2025 +0700 chore: fix test suite configuration script (#2402) commit e94b7bb Author: QuantumExplorer <[email protected]> Date: Tue Jan 14 19:23:46 2025 +0700 fix(drive-abci): document purchase on mutable document from different epoch had issue (#2420) commit 4ee57a6 Author: Ivan Shumkov <[email protected]> Date: Tue Jan 14 19:12:20 2025 +0700 fix(drive): more than one key was returned when expecting only one result (#2421) commit be5cd6d Author: Ivan Shumkov <[email protected]> Date: Mon Jan 13 15:12:33 2025 +0700 fix(sdk): failed to deserialize consensus error (#2410) commit e07271e Author: Ivan Shumkov <[email protected]> Date: Mon Jan 13 14:57:08 2025 +0700 chore: resolve NPM audit warnings (#2417) commit a809df7 Author: QuantumExplorer <[email protected]> Date: Sun Jan 12 09:21:48 2025 +0700 test: unify identity versioned cost coverage (#2416) commit 6d637fe Author: Paul DeLucia <[email protected]> Date: Fri Dec 27 09:42:04 2024 -0500 fix: try DriveDocumentQuery from DocumentQuery start field (#2407) commit cfd9c4d Author: Ivan Shumkov <[email protected]> Date: Thu Dec 19 18:30:06 2024 +0700 chore(release): update changelog and bump version to 1.8.0-dev.2 (#2404) commit fecda31 Merge: 37d5732 fc7d994 Author: Ivan Shumkov <[email protected]> Date: Thu Dec 19 15:33:45 2024 +0700 Merge branch 'master' into v1.8-dev commit fc7d994 Author: Ivan Shumkov <[email protected]> Date: Thu Dec 19 14:40:44 2024 +0700 chore(release): update changelog and bump version to 1.7.1 (#2403) commit adcd3b8 Author: QuantumExplorer <[email protected]> Date: Thu Dec 19 09:54:07 2024 +0300 fix!: emergency hard fork to fix masternode voting (#2397) commit 37d5732 Author: Ivan Shumkov <[email protected]> Date: Wed Dec 18 22:24:37 2024 +0700 fix(dashmate): some group commands fail with mtime not found (#2400) commit 01a5b7a Author: Ivan Shumkov <[email protected]> Date: Wed Dec 18 20:44:44 2024 +0700 refactor(dpp): using deprecated param to init wasm module (#2399) commit c5f5878 Author: Ivan Shumkov <[email protected]> Date: Wed Dec 18 18:04:14 2024 +0700 fix(dashmate): local network starting issues (#2394) commit 71c41ff Author: Ivan Shumkov <[email protected]> Date: Wed Dec 18 18:03:55 2024 +0700 perf(dpp): reduce JS binding size by 3x (#2396) commit 21ec393 Author: lklimek <[email protected]> Date: Wed Dec 18 10:47:58 2024 +0100 build!: update rust to 1.83 - backport #2393 to v1.7 (#2398) commit d7143cc Author: lklimek <[email protected]> Date: Wed Dec 18 08:53:53 2024 +0100 build!: optimize for x86-64-v3 cpu microarchitecture (Haswell+) (#2374) commit d318b1c Author: lklimek <[email protected]> Date: Tue Dec 17 14:56:15 2024 +0100 build: bump wasm-bindgen to 0.2.99 (#2395) commit 889d192 Author: Ivan Shumkov <[email protected]> Date: Tue Dec 17 19:25:58 2024 +0700 chore(release): update changelog and bump version to 1.8.0-dev.1 (#2391) commit 8185d21 Author: lklimek <[email protected]> Date: Tue Dec 17 10:47:53 2024 +0100 feat(sdk)!: allow setting CA cert (#1924) commit 82a6217 Author: lklimek <[email protected]> Date: Tue Dec 17 02:51:18 2024 +0100 build!: update rust to 1.83 (#2393) commit 494054a Author: QuantumExplorer <[email protected]> Date: Mon Dec 16 13:47:58 2024 +0300 refactor(platform): replace bls library (#2257) Co-authored-by: Lukasz Klimek <[email protected]> commit 4c203e4 Author: lklimek <[email protected]> Date: Mon Dec 16 10:38:34 2024 +0100 test(sdk): generate test vectors using testnet (#2381) commit 0ff6b27 Author: lklimek <[email protected]> Date: Mon Dec 16 10:37:35 2024 +0100 chore: remove deprecated check_network_version.sh (#2084) commit b265bb8 Author: lklimek <[email protected]> Date: Fri Dec 13 13:25:40 2024 +0100 ci: fix artifact upload issue on release build (#2389) commit 40ae73f Author: Ivan Shumkov <[email protected]> Date: Fri Dec 13 17:35:40 2024 +0700 chore(release): update changelog and bump version to 1.7.0 (#2387) commit 257e3da Author: Ivan Shumkov <[email protected]> Date: Fri Dec 13 15:44:10 2024 +0700 chore(dashmate)!: update Core to version 22 (#2384) commit 19a4c6d Author: Ivan Shumkov <[email protected]> Date: Thu Dec 12 18:30:14 2024 +0700 chore(dashmate): set tenderdash version to 1 (#2385) commit 0e9d4dc Author: lklimek <[email protected]> Date: Thu Dec 12 11:39:35 2024 +0100 chore: address vulnerabilty GHSA-mwcw-c2x4-8c55 (#2382) Co-authored-by: Ivan Shumkov <[email protected]> commit bdae90c Author: Ivan Shumkov <[email protected]> Date: Thu Dec 12 13:36:04 2024 +0700 chore(dashmate): increase subsidy for devnet (#2353)
Summary by CodeRabbit
Based on the comprehensive summary of changes, here are the release notes:
New Features
Improvements
Technical Updates
Checklist:
For repository code-owners and collaborators only